//package com.cy.hui_jie_dan.service;
//
//import com.cy.hui_jie_dan.popj.entity.Friend;
//import com.cy.hui_jie_dan.popj.entity.FriendRequest;
//
//import java.util.List;
//import java.util.Map;
//
///**
//* @author mjk
//* @description 针对表【friend(好友关系表)】的数据库操作Service
//* @createDate 2025-05-13 15:18:19
//*/
//public interface FriendService {
//
//    /**
//     * 根据ID查询好友
//     * @param id 好友关系ID
//     * @return 好友关系
//     */
//    Friend getById(Long id);
//
//    /**
//     * 保存好友关系
//     * @param friend 好友关系
//     * @return 是否成功
//     */
//    boolean save(Friend friend);
//
//    /**
//     * 更新好友关系
//     * @param friend 好友关系
//     * @return 是否成功
//     */
//    boolean updateById(Friend friend);
//
//    /**
//     * 删除好友关系
//     * @param id 好友关系ID
//     * @return 是否成功
//     */
//    boolean removeById(Long id);
//
//    /**
//     * 搜索用户
//     * @param keyword 搜索关键词
//     * @param currentUserId 当前用户ID
//     * @return 用户列表
//     */
//    List<Map<String, Object>> searchUsers(String keyword, Integer currentUserId);
//
//    /**
//     * 发送好友申请
//     * @param fromUserId 发送用户ID
//     * @param toUserId 接收用户ID
//     * @param message 申请消息
//     */
//    void sendFriendRequest(Integer fromUserId, Integer toUserId, String message);
//
//    /**
//     * 处理好友申请
//     * @param requestId 申请ID
//     * @param userId 处理用户ID
//     * @param status 处理状态：1-接受，2-拒绝
//     */
//    void handleFriendRequest(Long requestId, Integer userId, Integer status);
//
//    /**
//     * 获取好友列表
//     * @param userId 用户ID
//     * @return 好友列表
//     */
//    List<Friend> getFriendList(Integer userId);
//
//    /**
//     * 获取好友列表（包含用户信息）
//     * @param userId 用户ID
//     * @return 好友列表（包含用户信息）
//     */
//    List<Map<String, Object>> getFriendListWithUserInfo(Integer userId);
//
//    /**
//     * 分页获取好友列表（包含用户信息）
//     * @param userId 用户ID
//     * @param status 好友状态（可选）
//     * @param keyword 搜索关键词（可选）
//     * @param orderBy 排序字段（可选）
//     * @param orderDirection 排序方向（可选）
//     * @param pageNum 页码
//     * @param pageSize 每页大小
//     * @return 分页好友列表（包含用户信息）
//     */
//    Map<String, Object> getFriendListWithUserInfoPaged(
//            Integer userId,
//            Integer status,
//            String keyword,
//            String orderBy,
//            String orderDirection,
//            Integer pageNum,
//            Integer pageSize);
//
//    /**
//     * 获取待处理的好友申请列表
//     * @param userId 用户ID
//     * @return 待处理的好友申请列表
//     */
//    List<FriendRequest> getPendingFriendRequests(Integer userId);
//
//    /**
//     * 获取待处理的好友申请列表（包含用户信息）
//     * @param userId 用户ID
//     * @return 待处理的好友申请列表（包含用户信息）
//     */
//    List<Map<String, Object>> getPendingFriendRequestsWithUserInfo(Integer userId);
//
//    /**
//     * 获取好友申请历史记录
//     * @param userId 用户ID
//     * @return 好友申请历史记录
//     */
//    List<Map<String, Object>> getFriendRequestHistory(Integer userId);
//
//    /**
//     * 检查两个用户是否是好友关系
//     * @param userId1 用户1 ID
//     * @param userId2 用户2 ID
//     * @return 是否是好友
//     */
//    boolean isFriend(Integer userId1, Integer userId2);
//
//    /**
//     * 批量检查好友关系
//     * @param userId 当前用户ID
//     * @param friendIds 待检查的好友ID列表
//     * @return 好友关系映射，key为friendId，value为是否是好友
//     */
//    Map<Integer, Boolean> batchCheckFriendship(Integer userId, List<Integer> friendIds);
//
//    /**
//     * 删除好友关系
//     * @param userId1 用户1 ID
//     * @param userId2 用户2 ID
//     */
//    void deleteFriend(Integer userId1, Integer userId2);
//
//    /**
//     * 更新好友备注
//     * @param userId 用户ID
//     * @param friendId 好友ID
//     * @param remark 备注
//     */
//    void updateFriendRemark(Integer userId, Integer friendId, String remark);
//
//    /**
//     * 更新好友状态
//     * @param userId 用户ID
//     * @param friendId 好友ID
//     * @param status 状态
//     */
//    void updateFriendStatus(Integer userId, Integer friendId, Integer status);
//
//    /**
//     * 批量添加好友
//     * @param userId 用户ID
//     * @param friendIds 好友ID列表
//     * @param remark 备注（可选）
//     * @param status 状态（可选）
//     */
//    void batchAddFriends(Integer userId, List<Integer> friendIds, String remark, Integer status);
//}
